package com.lei.array;

/**
 * @author: leiGer
 * @Date: 2021/07/14
 * @Time: 0:25
 */
/**
在有序矩阵中找出指定数字
因为是有序，所以每一行最后一个数最大，最后一列从上往下递增，所以从右上角开始找，
若指定数字比他大，就往下，若比他小，就往左
 */

public class findNumOfMatrix {

    public static boolean find(int[][] arr, int num) {
        int row = arr.length - 1;
        int col = arr[0].length - 1;
        int i = 0;
        int j = col;
        while (i <= row && j <= col) {
            //若指定数字比他大，就往下
            if(arr[i][j]<num){
                i++;
                //若比他小，就往左
            }else if(arr[i][j]>num){
                j--;
            }else{
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[][] arr = { { 1, 2, 3, 4 },
                { 2, 4, 5, 8 },
                { 3, 6, 7, 9 },
                { 4, 8, 9, 10 } };
        int num = 5;
        if(find(arr, num)){
            System.out.println("nice,find!");
        }else{
            System.out.println("fuck,no exist!");
        }
    }

}
